<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- designer-manual.qdoc -->
  <title>Qt Designer 的小部件（Widget）编辑模式 | Qt Designer 手册</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.14</a></td><td ><a href="qtdesigner-manual.html">Qt Designer 手册</a></td><td >Qt Designer 的小部件（Widget）编辑模式</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtdesigner-manual.html">Qt 5.14.2 参考文档</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="designer-editing-mode.html" />
  <link rel="next" href="designer-connection-mode.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="designer-editing-mode.html">Qt Designer 的编辑模式</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-connection-mode.html">Qt Designer 的信号和槽编辑模式</a>
</p><p/>
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#editing-a-form">编辑窗体（Form）</a></li>
<li class="level2"><a href="#the-property-editor">属性编辑器</a></li>
<li class="level2"><a href="#dynamic-properties">动态属性</a></li>
<li class="level2"><a href="#the-object-inspector">对象查看器</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Qt Designer 的小部件（Widget）编辑模式</h1>
<span class="subtitle"></span>
<!-- $$$designer-widget-mode.html-description -->
<div class="descr"> <a name="details"></a>
<p class="centerAlign"><img src="images/designer-editing-mode.png" alt="" /></p><p>在小部件（Widget）编辑模式中，可以将对象从主窗口的小部件框（widget box）拖放到窗体中，进行编辑、调整大小、在窗体上拖放，甚至在窗体之间拖放。可以交互地修改对象属性，以便可以立即看到更改。编辑界面对于简单的操作是直观的，但它仍然支持Qt强大的布局工具。</p>
<p>要创建和编辑新窗体，打开 <b>文件(F)</b> 菜单，选择 <b>新建(N)... </b> 或按<b>Ctrl+N</b>。现有的窗体也可以通过选择<b>打开(O)...</b> 来编辑,或按<b>Ctrl+O</b>。</p>
<p>在任何时候，您都可以从<b>文件(F)</b>菜单，通过选择<b>另存为(A)...</b>来保存您的窗体。<i>Qt Designer</i> 保存的UI文件包含有关所使用对象的信息，以及它们之间的信号和槽连接的任何细节。</p>
<a name="editing-a-form"></a>
<h2 id="editing-a-form">编辑一个窗体</h2>
<p>默认情况下，在小部件编辑模式下打开新窗体。要从另一个模式切换到编辑模式，请从 <b>Edit</b> 菜单中选择 <b>编辑窗口部件(Edit Widgets)</b> 或按<b>F3</b>键。</p>
<p>通过从主部件框中拖动对象并将其拖放到窗体上所需的位置，可以将对象添加到窗体中。一旦到了那里，就可以通过拖动或使用光标键来移动它们。同时按<b>Ctrl</b>键将所选小部件逐像素移动，而仅使用光标键则使所选小部件在移动时吸附到网格上。对象可以通过用鼠标左键点击来选择。您还可以使用<b>Tab</b>键更改选择。</p>
<p>小部件框（widget box）包含许多不同类别的对象，所有这些对象都可以根据需要放在窗体上。唯一需要更多准备的对象是<b>Container</b>小部件。在 <a
  href="designer-using-containers.html">使用容器</a> 一章中有更详细的描述。</p>
<a name="selectingobjects"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-selecting-widget.png" alt="" /></td><td ><b>选择对象</b><p>通过用鼠标左键单击窗体上的对象来选择它们。选中对象后，在每个角和每边的中点都会显示调整大小的手柄，表示可以调整对象的大小。</p>
<p>同时选择更多的对象，按住<b>Control</b>键并单击它们。如果选择了多个对象，则当前对象将以不同颜色的调整大小手柄显示。</p>
<p>选择小部件后按住 <b>Shift</b> 键，再选择同一个小部件，这将选择扩展到这个小部件的父布局。</p>
<p>或者，可以在 <a href="designer-widget-mode.html#the-object-inspector">对象查看器（Object Inspector）</a> 中选择对象。</p>
</td></tr>
</table></div>
<p>选中小部件后，可以在其上执行普通的剪贴板操作，如剪切、复制和粘贴。所有这些操作都可以根据需要完成或撤消。</p>
<p>可以使用以下快捷方式:</p>
<a name="shortcutsforediting"></a><div class="table"><table class="generic">
 <thead><tr class="qt-style"><th >动作</th><th >快捷键</th><th >描述</th></tr></thead>
<tr valign="top" class="odd"><td >剪切</td><td ><b>Ctrl+X</b></td><td >将选定的对象剪切到剪贴板上。</td></tr>
<tr valign="top" class="even"><td >复制</td><td ><b>Ctrl+C</b></td><td >将选定的对象复制到剪贴板。</td></tr>
<tr valign="top" class="odd"><td >粘贴</td><td ><b>Ctrl+V</b></td><td >将剪贴板中的对象粘贴到窗体上。</td></tr>
<tr valign="top" class="even"><td >删除</td><td ><b>Delete</b></td><td >删除选定的对象。</td></tr>
<tr valign="top" class="odd"><td >克隆对象</td><td ><b>Ctrl+拖拽</b> (按住鼠标左键不放)</td><td >复制选定的对象或对象组。</td></tr>
<tr valign="top" class="even"><td >预览</td><td ><b>Ctrl+R</b></td><td >显示窗体的预览。</td></tr>
</table></div>
<p>以上所有操作(除了克隆之外)都可以通过 <b>编辑（Edit）</b> 菜单和窗体的上下文菜单访问。这些菜单还提供了布局对象的功能，以及 <b>选择全部</b> 的功能，以选择窗体上的所有对象。</p>
<p>小部件（Widgets）不是唯一的对象;你可以根据需要复制它们。要快速复制一个小部件，可以通过按住 <b>Ctrl</b> 键并拖动来克隆它。这使得小部件可以比剪贴板操作更快地复制和放置在窗体上。</p>
<a name="draganddrop"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-dragging-onto-form.png" alt="" /></td><td ><b>拖和拽</b><p><i>Qt Designer</i> 广泛使用了Qt提供的拖放工具，可以将小部件从 Widget Box 中拖放到窗体中。</p>
<p>还可以在窗体上“克隆”小部件: 按住 <b>Ctrl</b> 并拖动小部件会创建一个小部件的副本，可以将其拖动到新的位置。</p>
<p>还可以将小部件放到 <a href="designer-widget-mode.html#the-object-inspector">对象查看器（Object Inspector）</a> 中来轻松处理嵌套布局。</p>
</td></tr>
</table></div>
<p><i>Qt Designer</i> 允许在窗体之间复制、粘贴和拖动对象的选择。您可以使用此特性创建同一窗体的多个副本，并在每个副本中试验不同的布局。</p>
<a name="the-property-editor"></a>
<h3 id="the-property-editor">属性编辑器</h3>
<p>属性编辑器总是在窗体上显示当前选中对象的属性。可用的属性依赖于被编辑的对象，但是提供的所有小部件都具有公共属性，如 <a
  href="../qtcore/qobject.html#objectName-prop">objectName</a> (对象的内部名称)和 <a
  href="../qtwidgets/qwidget.html#enabled-prop">enabled</a> (确定是否可以与对象交互的属性)。</p>
<a name="editingproperties"></a><div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-property-editor.png" alt="" /></td><td ><b>编辑属性</b><p>属性编辑器使用标准Qt输入小部件(input widgets)来管理窗体上对象的属性。文本属性在行编辑(line edits)中显示，整数属性在旋转框(spin boxes)中显示，布尔属性在复选框(check
boxes)中显示，混合属性(如颜色和大小)在输入小部件(input widgets)的下拉列表中显示。</p>
<p>修改后的属性用粗体标签表示。要重置它们，单击右边的箭头按钮。</p>
<p>属性的更改可以应用于具有相同属性的所有选定对象。</p>
</td></tr>
</table></div>
<p>属性编辑器会特别处理某些属性:</p>
<ul>
<li>复合属性(由多个值组成的属性)表示为可以展开的节点，允许对它们的值进行编辑。</li>
<li>通过带有可选项的组合框来编辑包含选项或选定标志的属性。</li>
<li>允许访问丰富数据类型的属性(如QPalette)，可以使用在编辑属性时打开的对话框来修改。 <a href="../qtwidgets/qlabel.html">QLabel</a> 和 Widget Box 面板上的
<b>Buttons</b> 部分中的小部件(widgets )有一个 <code>text</code> 属性，也可以通过双击小部件或按 <b>F2</b> 进行编辑。 <i>Qt Designer</i> 专门解释反斜杠(\)字符，允许在文本中插入换行(\n)字符;字符序列用于在文本中插入一个反斜杠。还可以在编辑时打开上下文菜单，这为在文本中插入特殊字符和换行提供了另一种方式。</li>
</ul>
<a name="dynamic-properties"></a>
<h3 id="dynamic-properties">动态属性</h3>
<p>属性编辑器还可以用于向标准Qt小部件和窗体本身添加新的 <a href="../qtcore/qobject.html#dynamic-properties">动态属性(dynamic properties)</a> 。自Qt
4.4以来，动态属性是通过属性编辑器的工具栏添加和删除的，如下所示。</p>
<p class="centerAlign"><img src="images/designer-property-editor-toolbar.png" alt="" /></p><p>要添加动态属性, 单击 <b>添加</b> 按钮 <img src="images/designer-property-editor-add-dynamic.png" alt="" /> 。 要删除它, 请单击 <b>删除</b> 按钮 <img src="images/designer-property-editor-remove-dynamic.png" alt="" /> 。您还可以通过单击 <b>配置属性编辑器</b> 按钮<img src="images/designer-property-editor-configure.png" alt="" />  对属性进行按字母顺序排序，以及更改颜色组等。</p>
<a name="the-object-inspector"></a>
<h3 id="the-object-inspector">对象查看器</h3>
<div class="table"><table class="generic">
 <tr valign="top" class="odd"><td ><img src="images/designer-object-inspector.png" alt="" /></td><td ><b>对象查看器</b><p><b>对象查看器（Object Inspector）</b>显示窗体上当前正在编辑的所有对象的层次列表。要显示容器小部件或布局的子对象，请单击对象标签旁边的展开句柄。</p>
<p>窗体上的每个对象都可以通过单击 <b>对象查看器（Object Inspector）</b> 中相应的项来选择。右击打开窗体的上下文菜单。如果您有许多重叠的对象，这些特性可能会很有用 。</p>
<p>自Qt 4.4以来，双击对象的名称允许您使用本地编辑器更改对象的名称。</p>
<p>自从Qt 4.5以来， <b>对象查看器（Object Inspector）</b> 显示容器的布局状态 。如果布局状态无效，则在边上显示"打破布局"图标。</p>
</td></tr>
</table></div>
</div>
<!-- @@@designer-widget-mode.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="designer-editing-mode.html">Qt Designer 的编辑模式</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="designer-connection-mode.html">Qt Designer 的信号和槽编辑模式</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
